//2020.11.22  1.¶ͼλͲĹܣ
//                Ҫйؼ֡оƬڲ¶'͡¶ȡıʶ
//                ¶ȸʽҪ:(Ӣð)''뷨wenduҵţм¶ֵʾ
//                "оƬڲ¶Ϊ:37""¶Ϊ:38"
//                2. ˲ʵƵͼλPrintfʽΪɫ硾ɫ
ִм̣

1Program.csļFormSCI.cs
     ӦóڵΪMain()
         Application.Run(new FrmSCI());

2FormSCI.csй캯дʼ
         InitializeComponent();
     LoadΪûشʱ¼Load¼ѾΪFrmSCI_Load
         this.Load += new System.EventHandler(this.FrmSCI_Load);

3ʼдLoad¼FrmSCI_Load
     3.1 ʹ[ѡ]ڿ״̬
            this.CbSCIComNum.Enabled = true;
        Զ,뵽[ѡ]У
            SCIPorts = System.IO.Ports.SerialPort.GetPortNames();
            this.CbSCIComNum.Items.Add(SCIPorts[i]);
        ʼںΪĵһ
            this.CbSCIComNum.SelectedIndex = 0;
     3.2 ʼʾֵرǩʼΪ"򿪴"Ϊ״̬                      
                  ʼѡһ11520011520038400192009600ѡ״̬
                  ʼѡͷʽѡһַַʮơʮƣѡͷʽ״̬

4 "򿪴""رմ"
         BtnSCISwitch_Click()
     4.1 򿪴
            sci.SCIInit(SCIPort, PublicVar.g_SCIComNum, PublicVar.g_SCIBaudRate);
            ôڹʵ࣬SCI.csSCIInitдڳʼʹ
     4.2 رմ
            sci.SCIClose(this.SCIPort);
            ôڹʵ࣬SCI.csSCICloseرմ

5򿪴ں 
     ڡDataReceived¼жϣĴΪ뻺еֽΪͣ͹ݳȲΪ0
         SCIReceInt()
     ÿνյݽᴥDataReceived¼жϣDataReceived¼ѾΪSCIPort_DataReceived
         SCIPort_DataReceived()
     5.1 ôڽպ
           sci.SCIReceiveData(SCIPort, ref PublicVar.g_ReceiveByteArray);
           ôڹʵ࣬SCI.csSCIReceiveDataʵִڽջݣg_ReceiveByteArray
     5.2 ַʽʾ
          ַʽ,ǵк,ֱӵϵͳĺ,ַ
              str = Encoding.Default.GetString(PublicVar.g_ReceiveByteArray); 
          ʾַ 
              SCIUpdateRevtxtbox(TbShowString, str); 
              ݽ¼UIڲͬ߳,ڽյʾformеtextboxʱҪʹinvoke
              ίеʵ̵ֿ߳ͨ,һSCIUpdateRevtxtbox()ʵ
     5.3 ʮ/ʮʽʾֽڽд
              SCIUpdateRevtxtbox(TbShowDec, PublicVar.g_ReceiveByteArray[i].ToString("D3") + "  ");
              SCIUpdateRevtxtbox(TbShowHex, PublicVar.g_ReceiveByteArray[i].ToString("X2") + "  ");


6""ť"ôڷ
         BtnSCISend_Click()
     6.1 ƷͿݵĸʽTbSCISendKeyPress¼ѾΪTbSCISend_KeyPress()
            TbSCISend_KeyPress()
            ַ
            ʮƷ,ԶţӢ뷨£,ݷΧ0-255,˸
            ʮƷͣԶţӢ뷨£,ݷΧ00-FF,˸
           6.1.1 жϷͷʽ
            SendType = CbSCISendType.SelectedIndex;
           6.1.2 һԶ任С洢
            System.Collections.ArrayList SendData = new System.Collections.ArrayList();
     6.2 ѡַʽ
          Ҫ͵ݽб,ȡݳ
              len =System.Text.Encoding.Default.GetBytes(this.TbSCISend.Text).Length;
          ̬lenֽڵԪŷ
              PublicVar.g_SendByteArray = new byte[len];
          ȡTbSCISendıֵ
              PublicVar.g_SendByteArray =System.Text.Encoding.Default.GetBytes(this.TbSCISend.Text); 
     6.3 ѡʮƻʮƷʽ
          ıеתΪʮ/ʮƴArrayListʵSendData
              SendData.Add(Convert.ToByte(str, 10));
              SendData.Add(Convert.ToByte(str, 16));
          ̬ռŷ
              PublicVar.g_SendByteArray = new byte[count];
          Ѿתݷ뵽ȫֱg_SendByteArray
              PublicVar.g_SendByteArray[i] = (byte)SendData[i];
     6.4  ȫֱg_SendByteArrayе
            sci.SCISendData(this.SCIPort, ref PublicVar.g_SendByteArray);
            ôڹʵ࣬SCI.csSCISendDataʵִڷ


̿ܣ
    ù01-Doc02-Form03-Function04-Control05-Image06-DataBaseԼPropertiesapp.config
ļСҪ˵ļŵݣûݵ˽ù̡
  101-DocŸù̵˵ĵȣĲ˵ĵ
  202-FormļУ빤õһϵƽ
  303-FunctionļУ빦ܺҪĵProgram.csڣPublicVar.csȫֱ
       SCI.csͨģõĺ
  404-ControlļУԶûĿؼ
  505-ImageļУڴ洢õͼƬһ06-Imageѡļ
       ҪͼƬһĿѡԡԴļͼƬʱῴͼƬ
  606-DataBaseļУc#+ACCESSݿ⣬ڴݿش롣
  7PropertiesļУ򼯵  AssemblyInfo.csResources.resx
       Settings.settingsļڱ򼯵Ϣƣ汾ȣЩϢһĿ
       еݶӦҪֶд
  8app.configļapp.configûԶļܹȽ޸һЩϢݿӣ
       ʹûľOKˡ


̼Ҫأ

(1)˹õίе,ίDelegateVB.netC#һǳҪ,൱
   CC++еָ벢Ͱȫ.ҪӦڻص¼,Ҳ
   ,һֲο,ɻSystem.Delegate
(2)ڽϷһ״̬,ʾִй,гִʱ,ڵԡ
(3)ÿд벻78,ڴӡ롣
(4)Ϊֱ,еȫֱ"g_"ǰ׺
(5)ڴڵReceivedBytesThresholdֵֻΪ,SCIģǶ
   SCIReceInt,Աûѡýնٸֽʱжϡ
(6)SCIPortDataReceived¼ڲжϵʱá
(7)ڷͿ,붺ʱҪӢ뷨롣
(8)C#,SCIеSCIReceiveDataʱ,ݵǰrefΪ
   ,Ȼ޷ıԭֵ
(9)ڴַеĺ,ڽַʱ,ֱñķʽȡ
   ,Ȼίıʾ,VB.NETʾһһֽڴ
   ַʹSystem.Text.Encoding.Default.GetString(byte[] bytes),
   ǽֽbyte[]ָתΪַ,DefaultʾѡϵͳǰANSI
   ҳı,ϵͳѡļ,ĬϱΪ
   GB2312.ֶλΪASCIIUnicode,Ϣɲ鿴MSDNEncoding
   ˵GetString(byte[] bytes)ӦGetBytes(string strings),
   ǰ෴,ʹ÷ơ
(10)SerialPortؼԴ¼:DataReceived,ErrorReceivedPinChanged,ڿ
   Դе¼(Ͱť)в鿴.¼Ҳֵм¼
   ƺC#Form.Designer.csԶɶӦ¼ίע롣
(11)ڱ̴ݽյ̴:,ѡôͨŶ˿ڼ
   ,´򿪴ڰť.ڷıݣݡȰѴ
   ڡDataReceived¼ĴΪݵĳȡܻﵽ
   ʱ򣬴SCIPort_DataReceived¼;,SCIPort_DataReceived
   еSCIReceiveData,뻺еȡд;,
   ݽ¼UIڲͬ߳,ڽյʾformе
   textboxʱҪʹinvokeίеʵ̵ֿ߳ͨ,һSCIUpdateRevtxtbox
   ʵ֡

(12)2022/03/28
    button2_Click޸:
    dsynthesizer.Dispose();
    dsynthesizer = new SpeechSynthesizer();
    ͷ֮ǰԴεһεΪ׼в
 λֶţŻµΪ׼ ͬһʱֻһ  
 

